package com.example.springsecuritystudy.encoder;

import org.springframework.security.crypto.password.PasswordEncoder;

public class MyPasswordEncoder implements PasswordEncoder {
    /**
     * 密码加密方法。
     * param rawPassword密码的明文*return旁码加密后的密文
     */
    @Override
    public String encode(CharSequence rawPassword) {
        System.out.println("自定义密码解析器- encode方法执行");
        return rawPassword.toString();
    }

    /**
     * 校验密码明文和密文是否相同的方法
     *
     * @param rawPassword     明文密码，是登录时客户端传递的
     * @param encodedPassword 停文密码，是服务器中存储的。一般都保存在数据库中大
     * @return
     */
    @Override
    public boolean matches(CharSequence rawPassword, String encodedPassword){
        System.out.println("自定义密码解析器 - matches方法执行");
        // 先使用encode方法，用相同的加密策略，加密明文，再对比密文
        return encode(rawPassword).equals(encodedPassword);

    }}
